Task Scheduler
Question
What is the most efficient algorithm for scheduling tasks with varying degrees of priority?
Example 1
Input: tasks = ["A","A","A","B","B","B"], n = 2
Output: ["A","B","A","B","A","B"]
Solution
- ▭
- ▯
all//Task Scheduler.py
# Given an array of tasks and a cooldown period, return the minimum amount of time needed to finish all tasks
def taskScheduler(tasks, cooldown):
# create a dictionary to store the time spent on each task
task_times = {}
# create a variable to store the total time
total_time = 0
# loop over the tasks
for task in tasks:
# if the task has already been done, add the cooldown period to the total time
if task in task_times:
total_time += cooldown
# otherwise, add the task to the dictionary and add its duration to the total time
else:
task_times[task] = True
total_time += task.duration
# return the total time
return total_time
all//Task Scheduler.py
# Given an array of tasks and a cooldown period, return the minimum amount of time needed to finish all tasks
def taskScheduler(tasks, cooldown):
# create a dictionary to store the time spent on each task
task_times = {}
# create a variable to store the total time
total_time = 0
# loop over the tasks
for task in tasks:
# if the task has already been done, add the cooldown period to the total time
if task in task_times:
total_time += cooldown
# otherwise, add the task to the dictionary and add its duration to the total time
else:
task_times[task] = True
total_time += task.duration
# return the total time
return total_time